package com.deng.base.emun;


/**
 * 框架层异常，非业务异常
 *
 * @author owen
 * @date 2025年3月15日
 */

public enum ResultCode implements StatusCode {
    /**
     * 成功
     */
    SUCCESS("200", "操作成功"),
    /**
     * 失败
     */
    ERROR("500", "服务端错误。"),

    /**
     * 业务逻辑判断结果——错误
     * 例：电话号码格式错误
     */
    LOGIC_ERROR("400", "业务逻辑错误"),

    /**
     * 需要登录
     */
    DEED_LOGIN("401", "账号登录过期，请重新登录！"),
    /**
     * 别处登录
     */
    OTHER_LOGIN("403", "系统检测到您的账号在别处登录，如非本人操作，请联系管理员修改密码！"),
    /**
     * 账号异常
     */
    ACCOUNT_EXCEPTION("402", "系统检测到账号异常，请联系管理员！"),
    /**
     * 需要登录
     */
    NO_PERMISSION("400", "没有接口访问权限"),

    /**
     * 数据权限
     */
    NO_DATA_AUTHORITY("405", "没有访问权限"),

    LOGIC_TOKEN_ERROR("406", "token已失效"),
    STATUS_201("201", "扫码成功！"),
    STATUS_501("501", "验票失败！"), STATUS_502("502", "验证不通过，票码无效！");


    /**
     * 请求相关
     */
    private final String code;
    private String message;

    ResultCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    public ResultCode setMessage(String message) {
        this.message = message;
        return this;
    }
}
